使用二分查找:確保待查找的數組或者集合的數據是有序排列(升序或者降序)
話不多說,上代碼:
public class TwoFind { public static void main(String args[]){ int searchData=89; //int dbArray[]={12,56,67,89,45,23,67,89,10}; int dbArray[]={12,23,45,55,67,89,100}; show(searchData,dbArray); } public static void show(int searchData,int dbArray[]){ int start=0; int end=dbArray.length-1; int mid=0; while(start<=end){ int temp=(start+end)%2; mid=(temp==0?(start+end)/2:(start+end)/2+1); //mid=(start+end)/2; if(searchData>dbArray[mid]){ start=mid+1; } else if(searchData==dbArray[mid]){ System.out.println("找到目標數據位置爲:"+mid+" 數據爲:"+dbArray[mid]); break; } else{ end=mid-1; } System.out.println("!!!"); } } }
結果爲:
!!!
找到目標數據位置爲:5 數據爲:89
Process finished with exit code 0